/**
 * <b>项目名：</b>zlhy-coll-web<br/>  
 * <b>包名：</b>cn.org.cflac.wdh.word<br/>  
 * <b>文件名：</b>WordUtil.java<br/>  
 * <b>版本信息：</b>1.0<br/>  
 * <b>日期：</b>2016年9月20日 上午10:03:17<br/>  
 * <b>COPYRIGHT 2010-2012 ALL RIGHTS RESERVED 中国软件与技术服务股份有限公司</b>-版权所有<br/>
 */
package com.flea.hclv.util;

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import freemarker.template.Configuration;
import freemarker.template.Template;
/**
 * @description TODO
 * @createTime 2016年9月20日 上午10:03:17
 * @modifyTime 
 * @author 1009431383@qq.com
 * @version 1.0
 */
public class WordUtil {

    private Configuration configuration = null;

    /**
     * 构造方法
     */
    public WordUtil() {
        try {
            configuration = new Configuration();
            configuration.setDefaultEncoding("UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据类路径获取模板
     * @param templatePath
     * @param templateName
     * @return
     * @throws IOException
     */
    private Template getTemplate(String templatePath, String templateName) throws IOException {
        configuration.setDirectoryForTemplateLoading(new File(templatePath));
        Template t = configuration.getTemplate(templateName);
        t.setEncoding("UTF-8");
        return t;
    }

    /**
     * 生成word文档
     * @param templatePath
     * @param templateName
     * @param dataMap
     * @param out2 
     */
    public void write(HttpServletResponse response,String templatePath, String templateName,
        Map<String, Object> dataMap, Writer out2) {

        try {

            Template t = getTemplate(templatePath, templateName);
            t.process(dataMap, out2);
    
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static String getUTF8String(String str) throws UnsupportedEncodingException {
        return new String(str.getBytes("ISO-8859-1"), "UTF-8");
    }
    
}
